home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
util4
/
0utils.lha
/
0Utils
/
Window.data
< prev
next >
Wrap
Text File
|
1995-08-19
|
4KB
|
181 lines
#ifdef TPLTER
Window = {
SHORT = {{ Show info about the Shell Window }};
DESCRIPTION = {{
Window asks Console: for its WindowPtr and shows some
Information about the current shell window.
}};
NOTES = {{
Usage of this command blocks "Auto" abilities of Console windows
and stops Iconify possibilities with KingCON windows.
}};
HISTORY = {{
29-Apr-95 b_noll created
19-08-95 b_noll created .data file
}};
includes = {
"<exec/memory.h>",
"<strings.h>",
"<intuition/intuition.h>"
};
Template = "TITLE/S,TOP/S,LEFT/S,WIDTH/S,HEIGHT/S,SET/S,ENV=SETENV/S,SAVE=ENVARC/S,ONEVAR/K";
Arguments = {{
ULONG TITLE;
ULONG TOP;
ULONG LEFT;
ULONG WIDTH;
ULONG HEIGHT;
ULONG SET;
ULONG ENV;
ULONG SAVE;
STRPTR ONEVAR;
}};
version = "1.0";
body = {{
BPTR console;
int i,j,k;
ULONG flags = 0;
/* examine what */
for (i = j = 0; i < 5; i++)
if (((ULONG *)argv)[i])
++j;
/* write where */
if (argv->SET)
flags |= GVF_LOCAL_ONLY;
if (argv->ENV)
flags |= GVF_GLOBAL_ONLY;
if (argv->SAVE)
flags |= GVF_SAVE_VAR;
# if RAW_INFO
UBYTE buffer[256];
console = Open("CONSOLE:", MODE_READWRITE);
oldmode = SetMode (console,1);
Write (console,aWSR,strlen(aWSR));
Flush (console)
Read (console,buffer, sizeof buffer);
SetMode(console,oldmode);
Close (console);
# else
if (console = Open("CONSOLE:", MODE_OLDFILE)) {
struct InfoData *id;
if (id = AllocVec(sizeof *id, MEMF_CLEAR|MEMF_PUBLIC))
//if (id = AllocDosObject(DOS_INFO,NULL))
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Not Yet supported
{
BPTR lock;
struct Window *win = NULL;
# if 0
if (lock = DupLockFromFH(console)) {
if (Info (lock,id))
win = id->id_VolumeNode;
UnLock(lock);
} /* if */
# else
if (DoPkt(((struct FileHandle *)BADDR(console))->fh_Type, ACTION_DISK_INFO, MKBADDR(id),0,0,0,0))
win = id->id_VolumeNode;
# endif
if (win)
if (!flags) {
if (!j || argv->TITLE) {
Printf ("Set NAME=\"%s\"\t\"%s\"\n", "TITLE", win->Title);
} /* if */
if (!j || argv->LEFT) {
Printf ("Set NAME=\"%s\"\t%ld\n", "LEFT", win->LeftEdge);
} /* if */
if (!j || argv->TOP) {
Printf ("Set NAME=\"%s\"\t%ld\n", "TOP", win->TopEdge);
} /* if */
if (!j || argv->WIDTH) {
Printf ("Set NAME=\"%s\"\t%ld\n", "WIDTH", win->Width);
} /* if */
if (!j || argv->HEIGHT) {
Printf ("Set NAME=\"%s\"\t%ld\n", "HEIGHT", win->Height);
} /* if */
} else if (!argv->ONEVAR) {
UBYTE buffer[MAXLINELEN];
if (!j || argv->TITLE) {
SPrintf(buffer, "%s", win->Title);
SetVar ("TITLE", buffer, -1, flags);
} /* if */
if (!j || argv->LEFT) {
SPrintf(buffer, "%ld", win->LeftEdge);
SetVar ("LEFT", buffer, -1, flags);
} /* if */
if (!j || argv->TOP) {
SPrintf(buffer, "%ld", win->TopEdge);
SetVar ("TOP", buffer, -1, flags);
} /* if */
if (!j || argv->WIDTH) {
SPrintf(buffer, "%ld", win->Width);
SetVar ("WIDTH", buffer, -1, flags);
} /* if */
if (!j || argv->HEIGHT) {
SPrintf(buffer, "%ld", win->Height);
SetVar ("HEIGHT", buffer, -1, flags);
} /* if */
} else {
UBYTE buffer[MAXLINELEN];
UBYTE lbuffer[MAXLINELEN];
if (!j || argv->TITLE) {
SPrintf(buffer, "%s", win->Title);
strcat (lbuffer, buffer);
} /* if */
if (!j || argv->LEFT) {
SPrintf(buffer, "%ld", win->LeftEdge);
strcat (lbuffer, buffer);
} /* if */
if (!j || argv->TOP) {
SPrintf(buffer, "%ld", win->TopEdge);
strcat (lbuffer, buffer);
} /* if */
if (!j || argv->WIDTH) {
SPrintf(buffer, "%ld", win->Width);
strcat (lbuffer, buffer);
} /* if */
if (!j || argv->HEIGHT) {
SPrintf(buffer, "%ld", win->Height);
strcat (lbuffer, buffer);
} /* if */
SetVar (argv->ONEVAR, lbuffer, -1, flags);
} /* if */
FreeVec(id);
//FreeDosObject (DOS_INFO, id);
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Not Yet supported
} /* if */
Close (console);
} /* if */
# endif
}};
Addes = {{
__inline void SPrintf (STRPTR str, const STRPTR fmt, ...)
{
# undef SysBase
struct ExecBase *SysBase = *(struct ExecBase **)ABSEXECBASE;
RawDoFmt (fmt, &(fmt) + 1, (APTR)"\0x16\0xC0\0x4E\0x75", str);
} /* SPrintf */
}};
};
#endif